package com.java.basis.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/**
 * @author wangning
 * @create 2021-04-08 21:10
 */
public class TestList {
	public static void main(String[] args) {
		//先创建集合对象
		List list = new ArrayList<>();
		//1.添加元素
		list.add("苹果");
		list.add("小米");
		list.add(0,"华为");
		System.out.println("元素个数：" + list.size());
		System.out.println(list.toString());
		//2.删除元素,当元素不存在是，返回false，如果使用下标删除，当下标超出会报错
		System.out.println("list.remove(\"nihao\") = " + list.remove("nihao"));

//		list.remove(4);
//		list.remove("苹果");
//		list.remove(0);
		//3.遍历
		//3.1使用for遍历
		System.out.println("-----------3.1使用for遍历---------");
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		//3.2使用增强for
		System.out.println("-----------3.2使用增强for---------");
		for (Object o : list) {
			System.out.println(o);
		}
		//3.3使用迭代器
		System.out.println("----------3.3使用迭代器-----------");
		Iterator iterator = list.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}
		//3.4使用列表迭代器
		//ListIterator和Iterator的区别
		//ListIterator可以向前或者向后遍历，添加、删除、修改元素
		ListIterator listIterator = list.listIterator();
		System.out.println("---------3.4使用列表迭代器，从前向后迭代---------");
		while (listIterator.hasNext()) {
			Object o = listIterator.next();
			if(o.equals("苹果")) {
				listIterator.set("set");
//				listIterator.remove();
			}
//			System.out.println(listIterator.nextIndex() + ":" + listIterator.next());
		}
		System.out.println("---------3.4使用列表迭代器，从后向前迭代---------");
		while (listIterator.hasPrevious()) {

			System.out.println(listIterator.previousIndex() + ":" + listIterator.previous());
		}

		//4.判断
		System.out.println(list.contains("华为"));
		System.out.println(list.isEmpty());

		//5.获取位置
		System.out.println(list.indexOf("华为"));
	}
}
